package com.beeway.blackgoose.utils;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Environment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.widget.Toast;

import com.beeway.blackgoose.BaseApp;
import com.beeway.blackgoose.R;
import com.lidroid.xutils.BitmapUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author niu
 * @fucntion 是个工具类
 */
public class Utils {


    public static boolean isFrist() {
        Context context = BaseApp.getContext();
        SharedPreferences sp = context.getSharedPreferences("isFrist", context.MODE_PRIVATE);
        boolean isFirst = sp.getBoolean("isFrist", true);
        int versionCode = sp.getInt("versionCode", 1);//默认版本号为1
        if (isFirst || getVersionCode(context) > versionCode) {
            sp.edit().putBoolean("isFrist", false).commit();
            sp.edit().putInt("versionCode", getVersionCode(context)).commit();
        }
        return isFirst;
    }

    /**
     * 获得当前的系统版本号
     *
     * @param context
     * @return
     */

    private static int getVersionCode(Context context) {
        PackageManager manger = context.getPackageManager();
        PackageInfo info = null;
        try {
            info = manger.getPackageInfo(context.getPackageName(), 0);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return info.versionCode;
    }

    /**
     * 得到一个图片处理实例
     *
     * @param context
     * @return
     */
    public static String path = Environment.getExternalStorageDirectory().getPath();

    public static BitmapUtils getBitmapUtils(Context context) {
        //磁盘缓存路径
        String diskCacheSizePath = path + "/gift/image";
        //磁盘缓存大小
        int diskCacheSize = 50 * 1024 * 1024;
        //内存缓存大小
        int maxSize = (int) Runtime.getRuntime().maxMemory() / 8;
        BitmapUtils bitmapUtils = new BitmapUtils(context, diskCacheSizePath, maxSize, diskCacheSize);
        bitmapUtils.configThreadPoolSize(5);
        return bitmapUtils;
    }

    /**
     * 判别手机是否为正确手机号码；
     * 号码段分配如下：
     * 移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188.182
     * 联通：130、131、132、152、155、156、185、186
     * 电信：133、153、180、189、（1349卫通）
     */
    public static boolean isMobileNum(String mobiles) {
        Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$");
        Matcher m = p.matcher(mobiles);
        return m.matches();
    }
    public static boolean isEmailNum(String email) {
        Pattern p = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
        Matcher m = p.matcher(email);
        return m.matches();
    }
    //判断是否为六位数字
    public static boolean isSixNumber(String number) {
        Pattern p = Pattern.compile("[0-9]{6}");
        Matcher m = p.matcher(number);
        return m.matches();
    }

    public static void getToastMessage(String msg) {
        Toast.makeText(BaseApp.getContext(), msg, Toast.LENGTH_SHORT).show();

    }

    //动画 进入界面动画  左右切换式
    public static void getAnimIn(Activity context) {
        context.overridePendingTransition(R.anim.in_form_right, R.anim.out_to_left);
    }

    //动画 退出界面动画  左右切换式
    public static void getAnimOut(Activity context) {
        context.overridePendingTransition(R.anim.in_form_left, R.anim.out_form_right);
    }

    public static String phoneReplaceStart(String phone) {
        return phone.replace(phone.substring(3, 7), "****");
    }
}
